// 定义医院设置页面相关的请求函数
import { Key } from 'react'
// 引入axios实例
import { request } from '@utils/http'
// 引入相关的ts类型
import { IhospitalSetRes, IhospitalSet } from './model/hospitalSetTypes'

// 获取医院设置表格数据的函数
export function reqGetHospitalSets(
  page: number,
  limit: number,
  hosname?: string,
  hoscode?: string
) {
  // axios中还是ajax.ajax发送请求可以写相对路径. 相对路径会先和baseURL进行拼接,再和浏览器地址栏的url进行拼接.拼接成一个完整的url地址

  // request.请求方式<any,响应数据类型> 按照这种写法,可以修改调用当前函数promise成功之后拿到的数据的ts类型
  return request.get<any, IhospitalSetRes>(
    `/admin/hosp/hospitalSet/${page}/${limit}`,
    {
      // get请求上传参数,除了路由参数写在路径中,其他的就写在params中
      params: {
        hosname,
        hoscode,
      },
    }
  )
}

// 封装删除一条医院设置数据的函数
export function reqDelHospitalSet(id: string) {
  return request.delete(`/admin/hosp/hospitalSet/remove/${id}`)
}

// 封装批量删除多条医院设置数据的函数
export function reqBatchDelHospitalSets(ids: Key[]) {
  return request.delete(`/admin/hosp/hospitalSet/batchRemove`, {
    data: ids,
  })
}

// 封装添加一条医院设置的函数
export function reqAddHospitalSet(obj: IhospitalSet) {
  return request.post(`/admin/hosp/hospitalSet/save`, obj)
}

// 封装获取一条医院设置的函数
export function reqGetOneHospitalSet(id: string) {
  return request.get<any, IhospitalSet>(`/admin/hosp/hospitalSet/get/${id}`)
}

// 封装修改一条医院设置的函数
export function reqUpdateHospitalSet(obj: IhospitalSet) {
  return request.put(`/admin/hosp/hospitalSet/update`, obj)
}
